package datastructure.hash;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class LC349 {
    //还是慢
    public int[] intersection1(int[] nums1, int[] nums2) {
        Set<Integer> set = new HashSet<>();
        Set<Integer> set1 = new HashSet<>();
        for (int i : nums1) {
            set.add(i);
        }
        for (int i : nums2) {
            if (set.contains(i)) {
                set1.add(i);
            }
        }
        return set1.stream().mapToInt(Integer::intValue).toArray();
    }

    //利用true false表示当前元素是否存在，如果已存在则添加进list，最后将list转换为数组即可
    public int[] intersection(int[] nums1, int[] nums2) {
        boolean[] numsFlag=new boolean[1001];
        for (int i : nums1) {
            numsFlag[i]=true;
        }
        //对比
        List<Integer> res=new ArrayList<>();
        for (int i : nums2) {
            if (numsFlag[i]) {
                res.add(i);
                numsFlag[i]=false;
            }
        }
        //一个个转
        int[] resArr=new int[res.size()];
        for (int j = 0; j < resArr.length; j++) {
            resArr[j]=res.get(j);
        }
        return resArr;
    }
}
